
/**
 * GatewayFilter与GlobalFilter的区别
 * 区别用英语可以总结如下: At a high level global filters are applied to all routes,
 * while a gateway filter will be applied to an individual route(s) >在一个高的角度来看，
 * Global filters会被应用到所有的路由上，而Gateway filter将应用到单个路由上或者一个分组的路由上。
 * 在下面的案例中将会进行说明。
 *
 * https://xujin.org/blog/scg-03/
 *
 * GatewayFilter和GlobalFilter两个接口中定义的方法一样都是Mono filter(ServerWebExchange exchange, GatewayFilterChain chain)，
 * 唯一的区别就是GatewayFilter继承了ShortcutConfigurable，GlobalFilter没有任何继承。
 *
 * GatewayFilter 某一个路由的Filter 需要和某个或者某种路由绑定使用
 * GlobalFilter是一个全局的Filter，作用于所有的路由。
 *
 * 优先级 ； 这个优先级其实很好理解 spring gateway 是基于webFlux 开发的一套框架 ；
 * WebFilter 是Reactor框架中提供的更底层 优先级就会更高
 * GatewayFilter 是网关作用于某个路由的 会先于 全局GlobalFilter执行
 * WebFilter > GatewayFilter > GlobalFilter
 *
 *
 * Spring Cloud Gateway 的 Filter 的生命周期有两个：“pre” 和 “post”。
 * “pre”：请求被执行前调用
 * “post”：被执行后调用
 *
 * GlobalFilter : 全局过滤器，不需要在配置文件中配置，作用在所有的路由上，最终通过GatewayFilterAdapter包装成GatewayFilterChain可识别的过滤器
 *
 * GatewayFilter : 需要通过spring.cloud.routes.filters 配置在具体路由下，只作用在当前路由上或通过spring.cloud.default-filters配置在全局，作用在所有路由上。
 *
 *
 *
 *
 * @author wangzhilong
 * @date 2021/3/18
 */
package com.gate.way.demo.filter;